package com.demo.async;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * http://t.csdn.cn/bu10n
 */
@RestController
@RequestMapping("/async")
@Slf4j
public class AsyncController {
    @Autowired
    private AsyncTask asyncTask;

    /**
     * 通过上面三步我们就可以在SpringBoot中欢乐的使用异步方法来提高我们接口性能了，是不是很简单？
     * 不过，如果你在实际项目开发中真这样写了，
     * 肯定会被老鸟们无情嘲讽？因为上面的代码忽略了一个最大的问题，就是给@Async异步框架自定义线程池 。
     * @throws InterruptedException
     */
    @RequestMapping("/task")
    public void task() throws InterruptedException {
        long t1 = System.currentTimeMillis();
        asyncTask.doTask1();
        asyncTask.doTask2();
        Thread.sleep(1000);
        long t2 = System.currentTimeMillis();
        log.info("main cost {} ms", t2-t1);
    }
}